home *** CD-ROM | disk | FTP | other *** search
- #ifndef GD_H
- #define GD_H 1
-
- /* gd.h: declarations file for the gifdraw module.
-
- Written by Tom Boutell, 5/94.
- Copyright 1994, Cold Spring Harbor Labs.
- Permission granted to use this code in any fashion provided
- that this notice is retained and any alterations are
- labeled as such. It is requested, but not required, that
- you share extensions to this module with us so that we
- can incorporate them into new versions. */
-
- /* This can't be changed, it's part of the GIF specification. */
-
- #define gdMaxColors 256
-
- /* Image type. See functions below; you will not need to change
- the elements directly. Use the provided macros to
- access sx, sy, the color table, and colorsTotal for
- read-only purposes. */
-
- typedef struct gdImageStruct {
- unsigned char ** pixels;
- int sx;
- int sy;
- int colorsTotal;
- int red[gdMaxColors];
- int green[gdMaxColors];
- int blue[gdMaxColors];
- int open[gdMaxColors];
- int transparent;
- int *polyInts;
- int polyAllocated;
- struct gdImageStruct *brush;
- struct gdImageStruct *tile;
- int brushColorMap[gdMaxColors];
- int tileColorMap[gdMaxColors];
- int styleLength;
- int stylePos;
- int *style;
- int interlace;
- } gdImage;
-
- typedef gdImage * gdImagePtr;
-
- typedef struct {
- /* # of characters in font */
- int nchars;
- /* First character is numbered... (usually 32 = space) */
- int offset;
- /* Character width and height */
- int w;
- int h;
- /* Font data; array of characters, one row after another.
- Easily included in code, also easily loaded from
- data files. */
- char *data;
- } gdFont;
-
- /* Text functions take these. */
- typedef gdFont *gdFontPtr;
-
- /* For backwards compatibility only. Use gdImageSetStyle()
- for MUCH more flexible line drawing. Also see
- gdImageSetBrush(). */
- #define gdDashSize 4
-
- /* Special colors. */
-
- #define gdStyled (-2)
- #define gdBrushed (-3)
- #define gdStyledBrushed (-4)
- #define gdTiled (-5)
-
- /* NOT the same as the transparent color index.
- This is used in line styles only. */
- #define gdTransparent (-6)
-
- /* Functions to manipulate images. */
-
- gdImagePtr gdImageCreate(/* int sx, int sy */);
- gdImagePtr gdImageCreateFromGif(/* FILE *fd */);
- gdImagePtr gdImageCreateFromGd(/* FILE *fd */);
- gdImagePtr gdImageCreateFromXbm(/* FILE *fd */);
- void gdImageDestroy(/* gdImagePtr im */);
- void gdImageSetPixel(/* gdImagePtr im, int x, int y, int color */);
- int gdImageGetPixel(/* gdImagePtr im, int x, int y */);
- void gdImageLine(/* gdImagePtr im, int x1, int y1,
- int x2, int y2, int color */);
- /* For backwards compatibility only. Use gdImageSetStyle()
- for much more flexible line drawing. */
- void gdImageDashedLine(/* gdImagePtr im, int x1, int y1,
- int x2, int y2, int color */);
- /* Corners specified (not width and height). Upper left first, lower right
- second. */
- void gdImageRectangle(/* gdImagePtr im, int x1, int y1,
- int x2, int y2, int color */);
- /* Solid bar. Upper left corner first, lower right corner second. */
- void gdImageFilledRectangle(/* gdImagePtr im, int x1, int y1,
- int x2, int y2, int color */);
- int gdImageBoundsSafe(/* gdImagePtr im, int x, int y */);
- void gdImageChar(/* gdImagePtr im, gdFontPtr font, int x, int y,
- int c, int color */);
- void gdImageCharUp(/* gdImagePtr im, gdFontPtr font, int x, int y,
- int c, int color */);
- void gdImageString(/* gdImagePtr im, gdFontPtr font, int x, int y,
- char *s, int color */);
- void gdImageStringUp(/* gdImagePtr im, gdFontPtr font, int x, int y,
- char *s, int color */);
-
- /* Point type for use in polygon drawing. */
-
- typedef struct {
- int x, y;
- } gdPoint, *gdPointPtr;
-
- void gdImagePolygon(/* gdImagePtr im, gdPointPtr p,
- int pointsTotal, int color */);
- void gdImageFilledPolygon(/* gdImagePtr im, gdPointPtr p, int pointsTotal,
- int color */);
-
- int gdImageColorAllocate(/* gdImagePtr im, int r, int g, int b */);
- int gdImageColorClosest(/* gdImagePtr im, int r, int g, int b */);
- int gdImageColorExact(/* gdImagePtr im, int r, int g, int b */);
- void gdImageColorDeallocate(/* gdImagePtr im, int color */);
- void gdImageColorTransparent(/* gdImagePtr im, int color */);
- void gdImageGif(/* gdImagePtr im, FILE *out */);
- void gdImageGd(/* gdImagePtr im, FILE *out */);
- void gdImageArc(/* gdImagePtr im, int cx, int cy, int w, int h,
- int s, int e, int color */);
- void gdImageFillToBorder(/* gdImagePtr im, int x, int y,
- int border, int color */);
- void gdImageFill(/* gdImagePtr im, int x, int y, int color */);
- void gdImageCopy(/* gdImagePtr dst, gdImagePtr src,
- int dstX, int dstY, int srcX, int srcY, int w, int h */);
- /* Stretches or shrinks to fit, as needed */
- void gdImageCopyResized(/* gdImagePtr dst, gdImagePtr src,
- int dstX, int dstY, int srcX, int srcY, int destw, int desth,
- int srcw, int srch */);
- void gdImageSetBrush(/* gdImagePtr im, gdImagePtr brush */);
- void gdImageSetTile(/* gdImagePtr im, gdImagePtr tile */);
- void gdImageSetStyle(/* gdImagePtr im, int *style,
- int noOfPixels */);
- /* On or off (1 or 0) */
- void gdImageInterlace(/* gdImagePtr im, int interlace */);
-
- /* Macros to access information about images. READ ONLY. Changing
- these values will NOT have the desired result. */
- #define gdImageSX(im) ((im)->sx)
- #define gdImageSY(im) ((im)->sy)
- #define gdImageColorsTotal(im) ((im)->colorsTotal)
- #define gdImageRed(im, c) ((im)->red[(c)])
- #define gdImageGreen(im, c) ((im)->green[(c)])
- #define gdImageBlue(im, c) ((im)->blue[(c)])
- #define gdImageGetTransparent(im) ((im)->transparent)
- #define gdImageGetInterlaced(im) ((im)->interlace)
- #endif
-